package br.com.struts.view.cliente;

import java.util.Collection;

import javax.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;

import com.opensymphony.xwork2.ActionSupport;

import br.com.struts.controller.cliente.negocio.ClienteService;
import br.com.struts.model.Cliente;

@SuppressWarnings("serial")
@Component
public class ClienteAction extends ActionSupport{

	private Cliente cliente;

	private Collection<Cliente> lista;
	
	@Autowired
	private ClienteService clienteService;
	
	// MENSAGENS
	public static final String SUCESSO = "sucesso";
	public static final String FRACASSO = "fracasso";

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public String salvar() {
		try {
			if(cliente.getId() != null){
				clienteService.atualizar(cliente);
			}else{
				clienteService.salvar(cliente);
			}
			return SUCESSO;
		} catch (Exception e) {
			e.printStackTrace();
			return FRACASSO;
		}
	}
	
	public String getListaClientes(){
		try{
			setLista(clienteService.listarTodos());
		}catch(Exception e){
			e.printStackTrace();
		}
		return SUCESSO;
	}
	
	public String alterar(){
		try{
			setCliente(clienteService.buscarPorId(cliente.getId()));
			return SUCESSO;
		}catch(Exception e){
			e.printStackTrace();
			return FRACASSO;
		}
		
	}
	
	public String deletar(){
		try{
			clienteService.deletar(cliente);
			return SUCESSO;
		}catch(Exception e){
			e.printStackTrace();
			return FRACASSO;
		}
		
	}
	
	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}

	public Collection<Cliente> getLista() {
		return lista;
	}

	public void setLista(Collection<Cliente> lista) {
		this.lista = lista;
	}
	
}
